﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.AspNet.Identity.Owin;
using Owin;
using CorreoSocialWeb.Models;
using CorreoSocialWeb.Views;

namespace CorreoSocialWeb.Admin
{
    public partial class NuevosUsuarios : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        public IQueryable GridView_GetData(int startRowIndex, int maximumRows, out int totalRowCount)
        {
            totalRowCount = 0;

            try
            {
                ErrorMessage.Text = String.Empty;

                var opcionesPaginacion = new OpcionesDePaginacionGridView(this.GridView1);

                var lista = Usuario.GetParaVerificar(opcionesPaginacion).AsQueryable();

                totalRowCount = opcionesPaginacion.TotalCount;

                return lista;
            }
            catch
            {
                ErrorMessage.Text = "Ocurrió un error al cargar los usuarios. Por favor, intentá nuevamente más tarde.";
                return null;
            }
        }

        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                this.ErrorMessage.Text = String.Empty;

                int usuarioId = Convert.ToInt32(e.CommandArgument);

                switch (e.CommandName)
                {
                    case "Imagenes":
                        
                        var popuUrl = string.Format("popupimage.aspx?Id={0}", usuarioId);
                        var script = string.Format("window.open('{0}', 'popup_window', 'status=no, scrollbars=yes, toolbars=no, menubar=no,width=800,height=600,left=100,resizable=yes');"
                            , popuUrl);

                        ClientScript.RegisterStartupScript(this.GetType(), "script", script, true);

                        break;
                        
                    case "Aprobar":

                        var url = SiteUrlHelper.Get(this);

                        Usuario.AprobarPerfil(usuarioId, true, true, url);

                        Response.Redirect(string.Format("~/Administrador/PerfilAprobado?Id={0}", usuarioId));

                        break;
                        
                    case "Rechazar":

                        Response.Redirect(string.Format("~/Administrador/RechazarPerfil?Id={0}", usuarioId));

                        break;
                }
            }
            catch
            {
                ErrorMessage.Text = "Ocurrio un error al realizar la operación. Por favor, intentá nuevamente más tarde.";
            }
        }
    }
}